package secondStage.part4.特殊操作流;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.Scanner;

/**
 * @ClassName: [StreamInDemo]
 * @Description: 标准输入流
 * @Author: [黄劲松]
 * @CreateDate: [2021-04-05]
 * @Version: [v1.0]
 */
/*
4.1标准输入输出流
System类中有两个静态的成员变量:
    ●public static final InputStream in:标准输入流。通常该流对应于键盘输入或由主机环境或用户指定的另一个输入源
    ●public static final PrintStream out:标准输出流。通常该流对应于显示输出或由主机环境或用户指定的另-个输出目标
自己实现键盘录入数据:
    ●BufferedReader br = new BufferedReader(new InputStreamReader(System.in);
写起来太麻烦，Java就提供了一个实现键盘录入
    ●Scanner SC = new Scanner(System.in);
 */
public class StreamInDemo {
    public static void main(String[] args) throws IOException {
        //public static final InputStream in:标准输入流。通常该流对应于键盘输入或由主机环境或用户指定的另一个输入源
        //标准输入流
//        InputStream is = System.in;
        //一次读一个字节数据 (数据来源于键盘输入的)
/*        int by;
        while ((by=is.read())!=-1){
            System.out.println((char)by);
        }*/
        //如何把字节流转换为字符流？用转换流
//        InputStreamReader isr = new InputStreamReader(is);
//        //使用字符流能不能实现一次读一行数据呢？能
//        //但是，一次读一行数据的方法是字符缓冲流的特有方法
//        BufferedReader br = new BufferedReader(isr);
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("请输入一个字符串：");
        String line = br.readLine();
        System.out.println("你输入的字符串是:"+line);

        System.out.println("请输入一个整数：");
        int i = Integer.parseInt(br.readLine());
        System.out.println("你输入的整数是:"+i);
        //由于自己实现键盘录入太麻烦了，所以Java提供了Scanner这个类
        Scanner scanner = new Scanner(System.in);
    }
}
